

using System;
using System.Collections.Generic;
using System.Text;

namespace JTC.MiniCommerce.Store {

  //NOTE: The intent of TransactionType needs to be kept in sync with the Ids 
  //in MiniCommerce_Store_TransactionTypeDescriptor - MiniCommerce_Store_TransactionTypeDescriptor 
  //may hold localized values for reports, display grids, etc.
  public enum TransactionType : int {
    Authorization = 1,
    Charge = 2,
    Refund = 3
  }

  //NOTE: The intent of ProductStatus needs to be kept in sync with the Ids 
  //in MiniCommerce_Store_Status - MiniCommerce_Store_Status 
  //may hold localized values for reports, display grids, etc.
  public enum ProductStatus : int {
    Active = 1,
    Inactive = 99
  }

  //NOTE: The intent of SystemNotifications needs to be kept in sync with the Ids 
  //in MiniCommerce_Store_Notifications - MiniCommerce_Store_Notifications 
  //may hold localized values for reports, display grids, etc.
  public enum SystemNotifications : int {
    OrderReceivedToMerchant = 1,
    OrderReceivedToCustomer = 2,
    ShippingNotificationToCustomer = 3,
    OrderCancellationToCustomer = 4,
    OrderRefundToCustomer = 5
  }
  
  //NOTE: The intent of OrderStatus needs to be kept in sync with the Ids 
  //in MiniCommerce_Store_OrderStatusDescriptor - MiniCommerce_Store_OrderStatusDescriptor 
  //may hold localized values for reports, display grids, etc.
  public enum OrderStatus : int {
    ReceivedPaymentProcessingOrder = 100,
    GatheringItemsFromInventory = 200,
    PartialShipment = 300,
    CompleteShipment = 400,
    OrderRefunded = 500,
    NotProcessed = 9999
  }

  public enum BrowsingBehaviour : int {
    Browsing_Category = 1,
    Browsing_Product = 2,
    Clicking_On_Ad = 3,
    Clicking_On_Crosssell = 4,
    Search = 5,
    Adding_Item_To_Basket = 6,
    Checking_Out = 7,
    Paying = 8,
    Viewing_Receipt = 9,
    Removing_Item_From_Basket = 10,
    Adjusting_Quantity = 11,
    Logging_In = 12,
    Logging_Out = 13
  }

  public enum ProviderType {
    PaymentProvider = 1,
    TaxProvider,
    ShippingProvider,
    CouponProvider
  }

  public enum CreditCardType {
    MasterCard,
    VISA,
    Amex,
    Discover,
    PayPal
  }

  public enum AddressType : int {
    BillingAddress = 1,
    ShippingAddress = 2
  }
  
  public enum LoginRequirement {
    Checkout,
    Add_To_Cart,
    Never
  }
      
}